home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / SAT 2.3.8 / Libraries & Documentation / Tutorial ƒ / Assignment5.c < prev    next >
C/C++ Source or Header  |  1995-08-09  |  1KB  |  71 lines

  1. // Assignment 5
  2.  
  3. #include "SAT.h"
  4.  
  5. short kSpeed = 5;
  6. SpritePtr ignore;
  7. short direction;
  8. Handle theSound;
  9.  
  10. pascal void SetupTarget (SpritePtr me);
  11.  
  12. pascal void HandleSprite (SpritePtr me)
  13. {
  14.     GetMouse(&me->position);
  15. }
  16.  
  17. pascal void SetupSprite (SpritePtr me)
  18. {
  19.     me->task = &HandleSprite;
  20.     me->face = SATGetFace(128);
  21.     SetRect(&me->hotRect, 0, 0, 32, 32);
  22. }
  23.  
  24. pascal void HandleTarget (SpritePtr me)
  25. {
  26.     me->position.h = me->position.h + direction;
  27.     if (me->position.h < 0)
  28.         direction = kSpeed;
  29.     if (me->position.h > 200)
  30.         direction = -kSpeed;
  31.  
  32.     if (me->kind != -1) // Hit Me!
  33.     {
  34.         me->task = 0L;
  35.         ignore = SATNewSprite(-1, 0, SATRand(gSAT.offSizeV), &SetupTarget);
  36.         
  37.         // We could also re-use the old sprite for a new one, if we like.}
  38.         
  39.         SATSoundPlay(theSound, 1, true);
  40.     }
  41. }
  42.  
  43. pascal void SetupTarget (SpritePtr me)
  44. {
  45.     me->task = &HandleTarget;
  46.     me->face = SATGetFace(129);
  47.     SetRect(&me->hotRect, 0, 0, 32, 32);
  48.     direction = kSpeed;
  49. }
  50.  
  51. main()
  52. {
  53.     short kTicksPerFrame = 2;
  54.     long t;
  55.     
  56.     SATInitToolbox();
  57.     SATInit(128, 129, 478, 302);
  58.     ignore = SATNewSprite(1, 200, 200, &SetupSprite);
  59.     ignore = SATNewSprite(-1, 0, SATRand(gSAT.offSizeV), &SetupTarget);
  60.     theSound = SATGetNamedSound("\pTestSound");
  61.     HideCursor();
  62.     do
  63.     {
  64.         t = TickCount();
  65.         SATRun(true);
  66.         while ((TickCount () - t) < kTicksPerFrame);
  67.     } while (! Button());
  68.     ShowCursor();
  69.     SATSoundShutup();
  70. }
  71.